/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package basedatos;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import genericos.Detpuesto;
import genericos.Puestos;
import genericos.Usuarios;
import java.util.List;
import java.util.ArrayList;
/**
 * Clase que ejecutara elementos que no estan comtemplados en lo anterior.
 * @author Fer
 */
public class banderas {
  
    static Pool p=new Pool();
    
    public static int[] trimrecorrido(int trim){
        int x[]=new int[2];
        java.util.Date d=new java.util.Date();
       switch(trim)
       {
           case 1:
            x[0]=2;
            x[1]=d.getYear()+1900;
            System.out.println("X0 "+x[0]+" x1 "+x[1]);
           break;
           case 2:
            x[0]=3;
            x[1]=d.getYear()+1900;
            System.out.println("X0 "+x[0]+" x1 "+x[1]);
           break;
           case 3:
                x[0]=4;
            x[1]=d.getYear()+1900;
               System.out.println("X0 "+x[0]+" x1 "+x[1]);
           break;
           case 4:
                x[0]=1;
            x[1]=d.getYear()+1901;
               System.out.println("X0 "+x[0]+" x1 "+x[1]);
           break;         
       }
        return x;
    }
   
    public static boolean puestossuf(){
        boolean b=false;
        String sql="select count(id) from puestos";
        PreparedStatement pst = null;
        Connection conn = null;
        try {
            conn = p.extraerConexion();
            pst = conn.prepareStatement(sql);
           
            ResultSet rs = pst.executeQuery();
            int total=0;
            while (rs.next()) {
                total =rs.getInt(1);
            }
            if(total>=3){
                b=true;
            }else{
                b=false;
            }
        } catch (SQLException ex) {
            System.out.println(ex);
        } finally {
            try {
                pst.close();
                p.liberarConexion(conn);
                //System.gc();
            } catch (SQLException ex) {
                System.out.println(ex);
            }
        }
        System.out.println("Se puede editar der? "+b);
        return b;
    }
    public static List<Detpuesto> detpuestos(){
        List lista=new ArrayList();
        String sql="select id,arriba,idpuesto,abajo from detpuesto;";
        PreparedStatement pst = null;
        Connection conn = null;
        try {
           conn = p.extraerConexion();
            pst = conn.prepareStatement(sql);
            ResultSet rs = pst.executeQuery();

            while (rs.next()) {
                Detpuesto p=new Detpuesto();
                p.setId(rs.getInt(1));
                p.setArriba(rs.getInt(2));
                p.setPuesto(rs.getInt(3));
                p.setAbajo(rs.getInt(4));
                lista.add(p);
            }
        } catch (SQLException ex) {
            System.out.println(ex);
        } finally {
            try {
                pst.close();
                p.liberarConexion(conn);
                ////System.gc();
            } catch (SQLException ex) {
                System.out.println(ex);
            }
        }
        return lista;
    }
     public static List<Usuarios> usuariosis(){
        List lista=new ArrayList();
        String sql="select correo,nombre,nivel,puesto,id from usuarios;";
        PreparedStatement pst = null;
        Connection conn = null;
        try {
            conn = p.extraerConexion();
            pst = conn.prepareStatement(sql);
            ResultSet rs = pst.executeQuery();

            while (rs.next()) {
                Usuarios p=new Usuarios();
                p.setCorreo(rs.getString(1));
                p.setNombre(rs.getString(2));
                p.setNivel(rs.getInt(3));
                p.setPuesto(rs.getInt(4));
                p.setId(rs.getInt(5));
                lista.add(p);
            }
        } catch (SQLException ex) {
            System.out.println(ex);
        } finally {
            try {
                pst.close();
                p.liberarConexion(conn);
                //////System.gc();
            } catch (SQLException ex) {
                System.out.println(ex);
            }
        }
        return lista;
    }
    public static List<Puestos> puestosdeemp(){
        List lista=new ArrayList();
        String sql="select a.nombre,a.nivel,b.dep,a.id from puestos a, dependencia b where a.id=b.idpuesto;";
        PreparedStatement pst = null;
        Connection conn = null;
        try {
            conn = p.extraerConexion();
            pst = conn.prepareStatement(sql);
            ResultSet rs = pst.executeQuery();

            while (rs.next()) {
                Puestos p=new Puestos();
                p.setNombre(rs.getString(1));
                p.setNivel(rs.getInt(2));
                p.setDireccion(rs.getInt(3));
                p.setId(rs.getInt(4));
                lista.add(p);
            }
        } catch (SQLException ex) {
            System.out.println(ex);
        } finally {
            try {
                pst.close();
                p.liberarConexion(conn);
                //////System.gc();
            } catch (SQLException ex) {
                System.out.println(ex);
            }
        }
        return lista;
    }
    
     public static List<Puestos> listapuestos(){
        List lista=new ArrayList();
        String sql="select id,nombre from puestos;";
        PreparedStatement pst = null;
        Connection conn = null;
        try {
            conn = p.extraerConexion();
            pst = conn.prepareStatement(sql);
            ResultSet rs = pst.executeQuery();

            while (rs.next()) {
                Puestos p=new Puestos();
                p.setNombre(rs.getString(2));
                p.setNivel(rs.getInt(1));
                
                lista.add(p);
            }
        } catch (SQLException ex) {
            System.out.println(ex);
        } finally {
            try {
                pst.close();
                p.liberarConexion(conn);
                //////System.gc();
            } catch (SQLException ex) {
                System.out.println(ex);
            }
        }
        return lista;
    }
     public static String nombredir(int puesto){
        String total = "";
        String sql = "select nombre from direccion where id=?;";
        PreparedStatement pst = null;
        Connection conn = null;
        try {
           conn = p.extraerConexion();
            pst = conn.prepareStatement(sql);
            pst.setInt(1, puesto);
            ResultSet rs = pst.executeQuery();

            while (rs.next()) {
                total = rs.getString(1);
            }
        } catch (SQLException ex) {
            System.out.println(ex);
        } finally {
            try {
                pst.close();
                p.liberarConexion(conn);
                //////System.gc();
            } catch (SQLException ex) {
                System.out.println(ex);
            }
        }
         System.out.println("Nivel es: "+total);
        return total;
    }
    public static String nombrepuesto(int puesto){
        String total = "";
        String sql = "select nombre from puestos where id=?;";
        PreparedStatement pst = null;
        Connection conn = null;
        try {
            conn = p.extraerConexion();
            pst = conn.prepareStatement(sql);
            pst.setInt(1, puesto);
            ResultSet rs = pst.executeQuery();

            while (rs.next()) {
                total = rs.getString(1);
            }
        } catch (SQLException ex) {
            System.out.println(ex);
        } finally {
            try {
                pst.close();
                p.liberarConexion(conn);
                //////System.gc();
            } catch (SQLException ex) {
                System.out.println(ex);
            }
        }
         System.out.println("Nivel es: "+total);
        return total;
    }
    
}
